# 引入柱状图模块,时间线模块
from pyecharts.charts import Bar,Timeline
# 导入全局配置模块中的功能
from pyecharts.options import LabelOpts,LegendOpts
# 导入主题模块
from pyecharts.globals import ThemeType

# 新建柱状图对象
bar1 = Bar()
# 添加x轴数据（x轴标题）
bar1.add_xaxis(['猫猫','菜菜','格格','maoamo'])
# 添加y轴数据（y轴标题，y轴数据）,使用label_opts参数设置y轴的数值标签位置
bar1.add_yaxis('语文',[100,50,10],label_opts=LabelOpts(position="right"))   # label_opts=LabelOpts(position="right") 设置y轴数值在右侧展示，默认居中展示
bar1.add_yaxis('数学',[65,80,92])
bar1.add_yaxis('英语',[59,30,80])
bar1.reversal_axis()      # 将x，y轴反转
bar1.set_global_opts(
    legend_opts=LegendOpts(is_show=True)
)

# 新建柱状图对象
bar2 = Bar()
# 添加x轴数据（x轴标题）
bar2.add_xaxis(['猫猫','菜菜','格格','maoamo'])
# 添加y轴数据（y轴标题，y轴数据）,使用label_opts参数设置y轴的数值标签位置
bar2.add_yaxis('语文',[30,80,60],label_opts=LabelOpts(position="right"))   # label_opts=LabelOpts(position="right") 设置y轴数值在右侧展示，默认居中展示
bar2.add_yaxis('数学',[70,50,80])
bar2.add_yaxis('英语',[90,100,80])
bar2.reversal_axis()      # 将x，y轴反转

# 新建柱状图对象
bar3 = Bar()
# 添加x轴数据（x轴标题）
bar3.add_xaxis(['猫猫','菜菜','格格','maoamo'])
# 添加y轴数据（y轴标题，y轴数据）,使用label_opts参数设置y轴的数值标签位置
bar3.add_yaxis('语文',[60,90,50],label_opts=LabelOpts(position="right"))   # label_opts=LabelOpts(position="right") 设置y轴数值在右侧展示，默认居中展示
bar3.add_yaxis('数学',[100,70,60])
bar3.add_yaxis('英语',[80,30,60])
bar3.reversal_axis()      # 将x，y轴反转

# 构建时间线对象
timeline = Timeline({"theme":ThemeType.LIGHT})   #{"theme":ThemeType.LIGHT} 设置主题颜色
# 在时间线内构建柱状图对象
timeline.add(bar1,'2016年')
timeline.add(bar2,'2017年')
timeline.add(bar3,'2018年')

# 设置时间线自动播放
timeline.add_schema(
    play_interval=1000,   # 间隔1秒
    is_timeline_show=True,   # 是否在自动发放的时候显示时间线轴
    is_auto_play=True,    # 是否自动播放
    is_loop_play=True     # 是否循环播放
)
timeline.render()


# 将嵌套列表进行排序
my_list = [["a",20],["b",15],["c",2]]
# 将嵌套的列表根据某个下标进行大小排序
# 使用列表的sort方法，key参数传一个函数
# 函数返回需要进行排序的下标值
def choose_sort_key(list_element):
    return list_element[1]     # 返回下标1的元素

my_list.sort(key=choose_sort_key)     # 默认升序
print(f"升序：{my_list}")
my_list.sort(key=choose_sort_key,reverse=True)    #设置降序
print(f"降序：{my_list}")

# 匿名函数方法
my_list.sort(key=lambda list_element: list_element[1])   # 升序
print(f"升序：{my_list}")
my_list.sort(key=lambda list_element: list_element[1],reverse=True)   #降序
print(f"降序：{my_list}")